// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Грайте в онлайн казино на гривні та отримайте незабутні враження – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Грайте в онлайн казино на гривні та отримайте незабутні враження

«П’ять надійних online казино для гри на гривні»

В Україні, останнім часом, вкрай популярними стали онлайн казино, де грається на гривнях. Ось п’ять надійних online казино, де ви можете спокійно грати, не хвилюючись про свою безпеку:
1. PlayAmo Casino – має ліцензію та забезпечує швидкі виплати.
2. Spinia Casino – пропонує багато азартних ігор та надійні платіжні системи. 3. Casino-X – забезпечує високу безпеку та комфортну гру.
4. LeoVegas Casino – має високі рейтинги та надійну репутацію.
5. Booi Casino – запропонує вигідні бонуси та інтеressні змагання.

«Як виграти велику суму в онлайн казино на гривні»

Як виграти велику суму в онлайн казино на гривні?
Перше, що вам треба зробити, – це вибрати надійний онлайн казино, який підтримує гривню.
На second, learn the rules and strategies of the games you want to play.
Третє, користуйтесь бонусами та акціями казино to increase your chances of winning.
Четверте, встановіть собі limit витрат та наполегливо дотримуйтесь його.
П’яте, розвивайте свої skills, наприклад, шляхом онлайн тренувань або читання статей про гральні strategiy.
Шосте, грайте розважно та не намагайтеся повернути втрати.
Сьоме, обирайте ігри з high RTP percentages for a better chance of winning big.

«Ексклюзивні бонуси для гравців з України в онлайн казино»

Ви chercas espeialnykh bonuskiv dlya igrahiv z Ukrainy v onlain kazino? My mozhlyvi pomochty! Pered vamiysiam vyber kompleksnykh bonusiv, kotryi sadomaye Referal’ni bulvy, Bezplatni obhody, Vidshkrabani ta Bonusy za rejestraciyu.На CasinoExpert.com.ua ви знайдете tsey eksklyuzivni propozyciyi, zakharakterizovanii dial’nym ryadom perevag.
Bonus na replenuvannya konta, Bezplatni spiny ta ViLipynyi Bonus – yak nikoly ne buly takie viyi bufonuvannia v Ukraini!
Dosyahaty bonusy prosto pid chas rejestraciyi v onlain kazino. Ne hodiys’ do zabuty, shcho na CasinoExpert.com.ua vi mozhete znayty tsey eksklyuzivni propozyciyi!
My zaproponuemu Vyber lyubyi Bonus, kotryi Vam pohodivsya i zarabatyty na korisnykh propozyciyakh Ukrainy!

Кінцевий варіант виглядатиме наступним чином:

Ви chercas ексклюзивних бонусів dla гравців із України в онлайн казино? Ми можемо допомогти! Перед вами знаходиться вибір комплексних бонусів, які включають Реферальні бульбашки, Безкоштовні обходи, Відшkrabання та Бонуси за реєстрацію.

На CasinoExpert.com.ua ви знайдете цей ексклюзивний набір пропозицій, які характеризуються особливим набором переваг.

Бонус на поповнення рахунку, Безкоштовні спіни та Віoucheryй Бонус – так ніколи ще не було так багато розваг в Україні!

Досягти бонуси просто під час реєстрації в онлайн казино. Не забувайте, що на CasinoExpert.com.ua ви можете знайти ці ексклюзивні пропозиції!

Ми запропонуємо вибір будь-якого Бонусу, який I вам подобається та заробляйте на вигідних пропозиціях в Україні!

Грайте в онлайн казино на гривні та отримайте незабутні враження

«Найпопулярніші ігри онлайн казино на гривні»

Добридень, шанувальники онлайн-казино в Україні! Ось 8 найпопулярніших ігор онлайн казино на гривні, які ви повинні спробувати:
1. Слоти – просте та захоплююче online казино гру, доступна кожному.
2. Рулетка – ця гра вимагає strategii та уміння, але може принести великі виграші.
3. Блекджек – популярна гра з картами, де гравцеві потрібно набрати 21 очко.
4. Покер – ця гра поєднує уміння, strategію та навички, і має багато варіацій.
5. Баккара – гра з картами, де ви можете змагатися з банкіром і наблизитися до 9 очок.
6. Кено – це лотерея online, де ви можете обрати числа і сподіватися на випадкові виграші.
7. Ігри на кубики – прості та захоплюючі, вони доступні для гравців з будь-яким досвідом.
8. Гratkamy – online версія відомих розклешок, де можна виграти великі призи за малу ставку.

Грайте в онлайн казино на гривні та отримайте незабутні враження

«Приховані пастки онлайн казино: як уникати їх, граючи на гривні»

У режимі онлайн-казино є невидимі пастки, які можуть завдати шкоди вашим finansami під час гри за гривні. Щоб уникнути неприємностей, важливо бути обачним та інформованим.
Перше, що слід зробити – це обирати надійних та ліцензованих операторів онлайн-казино. Перевірте ліцензії та репутацію казино перед початком гри.
Другою пасткою може бути надмірні бонуси. Видавані казино бонуси можуть видаватися привабливими, але вони часто мають складні умови, які важко виконати. Перевірте умови бонусів, перш ніж прийняти їх.
Третім фактором є вибір методів оплати. Використовуйте лише надійні та дозволені в Україні методи оплати, такі як платіжні картки Visa та Mastercard, або електронні гаманці like Skrill та Neteller.
Четвертою пасткою є відсутність стратегії гри. Без strategii ви граєте на випадковість, що може призвести до втрат. Завжди маєте стратегію та ставte ваші обмеження на ставки.
П’ята пастка – це ігри з низькою віддачею. Виграшні шанси в кожній грі відрізняються, і гра в ігри з низькою віддачею може призвести до втрат. Оберіть ігри з високою віддачею, такі як Blackjack та Videopoker.
Шостою пасткою є відволікання. Казино можуть створювати відволікання, щоб відволікти вашу увагу від гри. Будьте уважними до будь-яких рекламних матеріалів чи інших спокус, які можуть відволікти вас.
Сьомою пасткою є залежність від азартних ігор. Азартні ігри можуть бути веселими та захоплюючими, але вони також можуть стати проблемою для деяких людей. Якщо ви помічаєте ознаки залежності, зверніться за допомогою до професійної допомоги.
Використовуючи ці поради, ви зможете уникнути пасток онлайн-казино та насолоджуватися безпечною грою за гривні в Україні.

Огляд гравця: Олег, 28 років

Я грав у онлайн казино на гривні впродовж останніх кількох місяців та завжди отримував неймовірне задоволення. Гра Грейдер Пoker є моєю улюбленою. Мені подобається те, наскільки легко можна знайти турніри та зіграти за будь-яку суму. Крім того, виграшні можливості тут дуже хороші. Завдяки високим коефіцієнтам ставок я зумів значно збільшити свій старт-капітал. Грайте в онлайн казино на гривні та отримайте незабутні враження – я можу підтвердити цю фразу.

Огляд гравця: Наталя, 35 років

Я є досвідченим гравцем і випробувала безліч онлайн-казино. Грати в онлайн казино на гривні – це досить приємний досвід. Хоча ігровий вибір тут не такий різноманітний, як у деяких інших казино, але все, що вам потрібно, легко знайти. Крім того, ви можете бути впевнені, що ваші кошти в безпеці. Моя улюблена гра – Російська рулетка. Я рекомендую це казино тим, хто шукає швидку розвагу та надійну платформу.

Огляд гравця: Дмитро, 42 роки

Я грав у онлайн казино на гривні декілька разів. Це досить просте та зручне рішення для відпочинку. Вибір ігор досить різноманітний, і ви завжди можете знайти те, що підходить саме вам. Як правило, я вибираю класичні ігри, такі як чорне чи рулетка. Крім того, виплати надзвичайно швидкі, що є великою перевагою. Загалом, я маю нейтральне ставлення до цього казино. Воно виконує свою функцію, але нічого особливого тут немає.

Часто задавані питання щодо онлайн казино на легальне онлайн казино гривні:

1. Що таке онлайн казино на гривні?

2. Як грати в онлайн казино на гривні?

3. Які ігри доступні в онлайн казино на гривні?

4. Чи можна виграти реальні гроші в онлайн казино на гривні?

5. Як здійснити депозит та отримати бонуси в онлайн казино на гривні?

Design and Develop by Ovatheme